﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class VlaevRequest : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevRequest {
        
        private string @__laevaRegnr;
        
        private string @__hinKood;
        
        private VlaevRequest.IOmaAndmedType @__omaAndmed;
        
        public VlaevRequest() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public VlaevRequest(string @laevaRegnr, string @hinKood, VlaevRequest.IOmaAndmedType @omaAndmed) {
            this.@__laevaRegnr = @laevaRegnr;
            this.@__hinKood = @hinKood;
            this.@__omaAndmed = @omaAndmed;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected VlaevRequest(IVlaevRequest @vlaevRequest) {
            this.@__laevaRegnr = @vlaevRequest.LaevaRegnr;
            this.@__hinKood = @vlaevRequest.HinKood;
            this.@__omaAndmed = @vlaevRequest.OmaAndmed;
        }
        
        public virtual string LaevaRegnr {
            get {
                return this.@__laevaRegnr;
            }
            set {
                this.@__laevaRegnr = value;
            }
        }
        
        public virtual string HinKood {
            get {
                return this.@__hinKood;
            }
            set {
                this.@__hinKood = value;
            }
        }
        
        public virtual VlaevRequest.IOmaAndmedType OmaAndmed {
            get {
                return this.@__omaAndmed;
            }
            set {
                this.@__omaAndmed = value;
            }
        }
        
        public partial class OmaAndmedType : IOmaAndmedType {
            
            private string @__omaKood;
            
            private string @__omaNimi;
            
            private string @__omaEesnimi;
            
            public OmaAndmedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public OmaAndmedType(string @omaKood, string @omaNimi, string @omaEesnimi) {
                this.@__omaKood = @omaKood;
                this.@__omaNimi = @omaNimi;
                this.@__omaEesnimi = @omaEesnimi;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected OmaAndmedType(IOmaAndmedType @omaAndmedType) {
                this.@__omaKood = @omaAndmedType.OmaKood;
                this.@__omaNimi = @omaAndmedType.OmaNimi;
                this.@__omaEesnimi = @omaAndmedType.OmaEesnimi;
            }
            
            public virtual string OmaKood {
                get {
                    return this.@__omaKood;
                }
                set {
                    this.@__omaKood = value;
                }
            }
            
            public virtual string OmaNimi {
                get {
                    return this.@__omaNimi;
                }
                set {
                    this.@__omaNimi = value;
                }
            }
            
            public virtual string OmaEesnimi {
                get {
                    return this.@__omaEesnimi;
                }
                set {
                    this.@__omaEesnimi = value;
                }
            }
        }
        
        public interface IOmaAndmedType {
            
            string OmaKood {
                get;
                set;
            }
            
            string OmaNimi {
                get;
                set;
            }
            
            string OmaEesnimi {
                get;
                set;
            }
        }
    }
}
